package com.yourenbang.lingyun.transaction.web.domain.po.klks;

import com.alibaba.fastjson.annotation.JSONField;
import com.yourenbang.lingyun.core.util.json.ToJSON;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 提款
 */
@Data
public class PayWithdrawalPO implements Serializable, ToJSON {

    /** 状态：0初始  */
    public static final String STATUS_INIT = "0";
    /** 状态：1提现中    */
    public static final String STATUS_ING = "1";
    /** 状态：2提现成功    */
    public static final String STATUS_SUCC = "2";
    /** 状态：3提现失败    */
    public static final String STATUS_FAIL = "3";
    /** 状态：4不提款    */
    public static final String STATUS_NOT = "4";
    /** 状态：5查询成功    */
    public static final String STATUS_ARRIVAL_SUCC = "5";
    /** 状态：6查询失败    */
    public static final String STATUS_ARRIVAL_FAIL = "6";

    private String id;

    private String userId;                      //用户id

    private String productType;                 //产品类型 01:刷卡 02:缴纳196 03:扫码 04:闪付

    private String payMerId;                    //通道商户id

    private String merNo;                       //拉卡拉商户号

    private String orderNo;                     //订单号

    private String serialNo;                    //流水号(我方请求拉卡拉的流水号)

    private String tranJnl;                     //拉卡拉流水号

    private BigDecimal transAmt;                //交易金额

    private BigDecimal amt;                     //提款金额

    private BigDecimal fee;                     //提款手续费

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime queryTime;            //首次发起可提余额查询时间

    private Integer queryCount;                 //发起可提余额查询次数

    private BigDecimal feeAmt;                  //D0手续费

    private BigDecimal accAmt;                  //实际记账金额

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime queryDrawTime;        //订单查询时间

    private Integer queryDrawCount;             //订单查询次数

    private String status;                      //状态 0初始 1提款中 2提款成功 3提款失败 4不提款 5查询成功 6查询失败

    private Integer version;                    //乐观锁

    private String transMonth;                  //交易年月（yyyyMM）

    private String transDay;                    //交易日（dd）

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;           //创建时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;           //更新时间

    private String remark;

}
